package conm;

import org.w3c.dom.ls.LSOutput;

import java.util.Scanner;

/*
 *
 *  案例3:评委打分---------->求取的是去掉极值的平均数
 *      1.定义一个长度为number的数组,用于存储评委打分
 *      2.遍历数组的每个位置,一次录入评委打分
 *      3.判断分数是在0-100之间
 *      4.存入评委打分
 *      5.找出数组中的最高分,最低分,总分
 * */
//注意类名
public class Test03 {
    //程序主入口
    public static void main(String[] args) {
        //调用方法
        System.out.println("选手最终的分是: " + start(6));
    }

    //定义一个评委打分的功能-->就是方法
    //注意 存储数据的结构用数组
    //还是两个明确 1.参数列表 2.返回值类型
    //需要接受评委的个数 返回值类型需要一个平均数

    public static double start(int number){
        //          1.定义一个长度为number的数组,用于存储评委打分
                    //可以是小数所以是double
                double[] scores = new double[number];
        //           2.遍历数组的每个位置,一次录入评委打分
        //创建扫描器
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < scores.length; i++) {
            //提示评委输入分数
            System.out.println("请您输入第" + (i+1) + "个评委的打分");
            //调用方法接受数据的
            double score = sc.nextInt();
            //          3.判断分数是在0-100之间
            if (score < 0 || score > 100){
                System.out.println("您输入额分数必须在0-100之间!!");
                //将索引保持在本位置
                i--;
                continue;//--->跳出本次循环
            }
            //            4.存入评委打分
            scores[i] = score;

        }

        //5.找出数组中的最高分,最低分,总分
       double max = scores[0];
       double min = scores[0];
       double sum = scores[0];
       //遍历数组,对数据进行相应的求取
        for (int i = 0; i < scores.length; i++) {
            //6.拿到当前变量的数据
            double score = scores[i];
            if (score > max) max = score;
            if (score < min) min = score;
            sum += score;
        }
        //对结果进行输出
        System.out.println("最高分: " + max);
        System.out.println("最低分: " + min);
        //返回平均值
        return (sum - max - min) / (number - 2);
    }

}
